Jackson-এর JsonParser এবং JsonGenerator API আপনাকে JSON ডেটার উপর লো-লেভেল স্ট্রিমিং প্রসেসিং করার ক্ষমতা দেয়। এগুলি ব্যবহার করে আপনি খুব কার্যকরীভাবে JSON ডেটা পড়তে এবং লিখতে পারেন।
JsonParser
JsonParser ব্যবহার করে JSON ডেটা স্ট্রিম হিসাবে পড়া হয়। এটি ইভেন্ট-বেসড পদ্ধতিতে কাজ করে এবং আপনাকে JSON ডেটার প্রতিটি টোকেন সম্পর্কে জানায়।
JsonParser উদাহরণ
JSON থেকে ডেটা পড়ার জন্য JsonParser ব্যবহার:
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import java.io.IOException;
public class JsonParserExample {
public static void main(String[] args) throws IOException {
String json = """
{
"name": "John Doe",
"age": 30,
"address": {
"city": "Dhaka",
"country": "Bangladesh"
}
}
""";
// Create JsonParser instance
JsonFactory factory = new JsonFactory();
JsonParser parser = factory.createParser(json);
// Parse JSON
while (!parser.isClosed()) {
JsonToken token = parser.nextToken();
if (token == null) break;
switch (token) {
case FIELD_NAME -> {
String fieldName = parser.getCurrentName();
System.out.print("Field: " + fieldName + " -> ");
}
case VALUE_STRING -> {
String value = parser.getValueAsString();
System.out.println("String Value: " + value);
}
case VALUE_NUMBER_INT -> {
int value = parser.getValueAsInt();
System.out.println("Integer Value: " + value);
}
default -> {}
}
}
parser.close();
}
}
Output
Field: name -> String Value: John Doe
Field: age -> Integer Value: 30
Field: address ->
Field: city -> String Value: Dhaka
Field: country -> String Value: Bangladesh
JsonGenerator
JsonGenerator ব্যবহার করে JSON ডেটা লেখা হয়। এটি ইভেন্ট-বেসড পদ্ধতিতে JSON ডেটা নির্মাণ করতে সাহায্য করে।
JsonGenerator উদাহরণ
JSON ডেটা তৈরি করার জন্য JsonGenerator ব্যবহার:
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import java.io.IOException;
import java.io.StringWriter;
public class JsonGeneratorExample {
public static void main(String[] args) throws IOException {
StringWriter writer = new StringWriter();
// Create JsonGenerator instance
JsonFactory factory = new JsonFactory();
JsonGenerator generator = factory.createGenerator(writer);
// Start writing JSON
generator.writeStartObject(); // {
generator.writeStringField("name", "John Doe"); // "name": "John Doe"
generator.writeNumberField("age", 30); // "age": 30
generator.writeFieldName("address"); // "address":
generator.writeStartObject(); // {
generator.writeStringField("city", "Dhaka"); // "city": "Dhaka"
generator.writeStringField("country", "Bangladesh"); // "country": "Bangladesh"
generator.writeEndObject(); // }
generator.writeEndObject(); // }
generator.close();
// Print the JSON output
System.out.println(writer.toString());
}
}
Output
{
"name": "John Doe",
"age": 30,
"address": {
"city": "Dhaka",
"country": "Bangladesh"
}
}
JsonParser এবং JsonGenerator-এর ব্যবহার ক্ষেত্র
JsonParser-এর ব্যবহার ক্ষেত্র:
- বড় JSON ডেটা: স্ট্রিমিং পদ্ধতিতে ডেটা পড়ার জন্য কার্যকর।
- স্মৃতি (Memory) ব্যবস্থাপনা: লার্জ JSON ডেটা লোড না করেই পড়ার সুবিধা।
- ডেটা প্রসেসিং: JSON ডেটা থেকে নির্দিষ্ট অংশ বের করে প্রক্রিয়া করা।
JsonGenerator-এর ব্যবহার ক্ষেত্র:
- কাস্টম JSON তৈরি: জটিল JSON ডেটা ম্যানুয়ালি লেখার জন্য।
- বড় JSON ডেটা তৈরি: স্ট্রিমিং পদ্ধতিতে ডেটা লেখা।
- ডেটা স্ট্রাকচার থেকে JSON নির্মাণ: Nested Objects এবং Custom Logic প্রয়োগ করে JSON তৈরি করা।
JsonParser এবং JsonGenerator ব্যবহার করার সুবিধা
- High Performance: স্ট্রিমিং পদ্ধতির কারণে কার্যকারিতা বেশি।
- Low Memory Footprint: সম্পূর্ণ JSON মেমোরিতে লোড না করেও কাজ করা সম্ভব।
- Flexibility: Custom Logic প্রয়োগ করে JSON ডেটা পড়া ও লেখা সহজ।
এই টেকনিকগুলি তখনই সবচেয়ে কার্যকর যখন আপনি বড় JSON ডেটা নিয়ে কাজ করছেন এবং JSON ডেটার সাথে বিশেষ ধরনের প্রক্রিয়া সম্পন্ন করতে চান।
Read more